#include <fcntl.h>
#include <linux/input.h>
#include <unistd.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
    int fd;
    struct input_event event;

    // 打开输入设备事件流
    fd = open("/dev/input/event4", O_RDONLY);
    if (fd < 0) {
        perror("open");
        return -1;
    }

    while (1) {
        // 读取一个事件
        if (read(fd, &event, sizeof(event)) != sizeof(event)) {
            perror("read");
            close(fd);
            return -1;
        }

        // 判断事件类型是否为绝对坐标事件
        if (event.type == EV_ABS) {
            // 判断事件编码是否为X轴坐标
            if (event.code == ABS_X) {
                printf("x = %d\n", event.value);
            }
            // 判断事件编码是否为Y轴坐标
            else if (event.code == ABS_Y) {
                printf("y = %d\n", event.value);
            }
        }
    }

    return 0;
}
